Skip to content

Conversation

@mikehardy
Copy link
Collaborator

Description

Does what it says in the title

also deleted a personal-developer-only file that shouldn't have been in the repo and .gitignore'd it, and switched to relying on system installed cocoapods version vs the Gemfile - it was out of date and updating it is pointless work

Related issues

Only the last 3 commits here are the new PR, it is based on the existing PR that finishes TurboModules work for Android:

...after that's merged I'll rebase those commits out of here and re-push

Reviewers should review commit by commit, and just look at the last 3

Release Summary

fix release via conventional commits

Checklist

  • I read the Contributor Guide
    and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
  • My change includes tests;
    • e2e tests added or updated in __tests__e2e__
    • jest tests added or updated in __tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan

Everything seemed to work fine and it eliminated native warnings for me that the SDKs were out of date


Think react-native-google-mobile-ads is great? Please consider supporting the project with any of the below:

  • 👉 Star this repo on GitHub ⭐️
  • 👉 Follow Invertase on Twitter

Pato9310 and others added 12 commits January 24, 2026 21:09
This fixes the runtime crash "TurboModuleRegistry.getEnforcing(...):
'RNAppModule' not found" when using React Native 0.83+ with mandatory
New Architecture.

Changes:
- Create NativeAppModule.ts TurboModule spec for Codegen
- Update ReactNativeAppModule.java to extend NativeAppModuleSpec
- Update GoogleMobileAdsNativeEventEmitter.ts to use TurboModule import
- Enable isTurboModule flag for RNAppModule in Package.kt

The RNAppModule (internal event handling module) was the only module
not properly configured as a TurboModule. While other modules like
RNGoogleMobileAdsModule had proper TurboModule support, RNAppModule
extended ReactNativeModule (bridge-based) and had isTurboModule=false
hardcoded in the package registration.

Fixes #XXX
- Add jest mock for NativeAppModule in jest.setup.ts
- Add unit tests for GoogleMobileAdsNativeEventEmitter in __tests__/
- Add e2e test for module initialization in e2e/admob.e2e.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change UnsafeObject import from deep path to 'react-native' root export
- Remove unused @nonnull import in ReactNativeAppModule.java

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The module initialization test was functionally equivalent to the
existing 'should match text in the basic app element' test. Both
verify the app loads correctly, which implicitly tests TurboModule
initialization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update the example app to RN 0.83.1 to properly test TurboModule support
for RNAppModule, which requires the root-level UnsafeObject export
introduced in RN 0.83+.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update react-native and @react-native/babel-preset to 0.83.1 in the root
package.json to ensure TypeScript compilation works with the UnsafeObject
root-level export that was introduced in RN 0.83.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
need to reference it from the correct spot on the root import
I find those to be very bothersome, if we specify the versions and have
a lock file there it implies maintenance of the versions and the lockfile

But the ruby ecosystem and management of those versions is an entire and
separate side quest unrelated to the mission of this repo

...and in practice "the current version of cocopaods" works. Just let
the version installed on the system work
the native SDKs are just patch releases, but I saw notices in the
native logs complaining they were not up to date, so I found the
latest versions in release notes and adopted them
@docs-page
Copy link

docs-page bot commented Jan 27, 2026

To view this pull requests documentation preview, visit the following URL:

docs.page/invertase/react-native-google-mobile-ads~830

Documentation is deployed and generated using docs.page.

Copy link
Collaborator

@dylancom dylancom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also bump the UMP sdk's.
iOS 3.1.0: https://developers.google.com/admob/ios/privacy/download
Android: 4.0.0 (breaking?) Increased the minimum Android API level to 23 https://developers.google.com/admob/android/privacy/release-notes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants